\section{Spécifications fonctionnelles et non fonctionnelles}
La bonne réalisation du projet découle d'une analyse fonctionnelle préalable. Celle-ci  permet d'obtenir du client les fonctions principales, les fonctions secondaires et les fonctions contraintes du logiciel. 

\subsection{Fonctionnalités liées  aux formats de  fichier}
Pour simplifier l'implémentation du logiciel, le client voulait que l'on se focalise sur le fichier PDF. Ainsi, le fichier d'entrée  devrait être sous format PDF sinon une erreur devrait se déclencher. De plus, le logiciel doit prendre  en compte un QCM sur plusieurs pages. Pour ce faire, une zone spéciale devrait permettre de numéroter les pages. En outre, tous les QCMs à analyser devraient disposer des points de repères sur les coins du document. Ces points devraient faciliter la limitation des zones de fichier (zone de texte, radio, zone à cocher,etc.). Ainsi, l'absence de ces points entraîne le refus du fichier d'entrée. Enfin, un identifiant placé sur le QCM devrait permettre de distinguer la version du QCM et de l'identifier de façon unique (distinction de matière, de sondage, numéro anonyme d'étudiant,etc).\\
La délimitation des zones doit permettre d'obtenir des coordonnées de chaque élément (zone à cocher, zone de texte,radio, zone à cocher,etc). Ces coordonnées doivent être enregistrées dans un fichier spécial appelé \textit{fichier modèle}. Aussi, les données obtenues après l'analyse du QCM rempli devraient être sauvegardées dans un fichier sous format \textsf{CSV}.

\subsection{Fonctionnalités de calibrage}
Il peut arriver que le  fichier d'entrée vierge soit différent du fichier rempli par la résolution ou son inclinaison. Le logiciel s'aidant des marqueurs présents sur les coins de la feuille, doit pouvoir palier à ces problèmes en remettant le fichier incliné sous la bonne forme par exemple. En effet, les marqueurs permettront de calculer l'angle de dérivation qu'aurait subit le formulaire de \textit{QCM}.


\subsection{Fonctionnalités internes au logiciel}
L'outil doit  être multi-plateforme et offrir la possibilité de sauvegarder une tâche à n'importe quel moment. En effet, l'utilisateur n'est pas à l'abri d'un contre temps. Il peut donc arriver qu'en pleine analyse ou délimitation qu'il soit   obliger de  tout arrêter et de continuer après.

\subsection{Fonctionnalités de l'interface}
Le client n'a pas formuler plusieurs exigences concernant l'interface. En effet, il voulait juste une interface facile à utiliser. De ce fait, il nous fallait décider des exigences utiles pour réaliser l'interface. Dans le cadre d'un logiciel de délimitation et d'analyse, il est important que l'interface dispose de certaines fonctions: arriver facilement à distinguer lors de la délimitation, les zones déjà sélectionnées et les groupements de zones mais aussi supprimer celles ci avant toute validation. Les informations devraient donc être clair et facilement accessible  par l'utilisateur.


\subsection{Cas d'utilisation}
De l'analyse du besoin découle l'utilisation du logiciel. Tout d'abord, le logiciel devrait permettre la création d'un fichier  modèle. Ensuite, il devrait  analyser le QCM en se basant sur ce fichier modèle et  extraire les réponses de l'utilisateur. De plus, il faudrait gérer (lire, modifier, sauvegarder) un fichier modèle. De cette synthèse découle le diagramme de cas d'utilisation de la figure\ref{cu}.
\newpage
\begin{figure}[H]
  \centering
  \includegraphics[width=16cm,height=17cm]{../Diagramme/CUdiagramme.png}
  \caption{Diagramme de cas d'utilisation}
    \label{cu}
\end{figure}

